home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
8bitfiles.net/archives
/
archives.tar
/
archives
/
geos-archive
/
GEOS-D64
/
GeoThek Programme (19xx)(-)(de)[gt105a].d64
/
dir repair
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2019-04-13
|
11KB
|
441 lines
100 REM !-----------------------------!
110 REM ! ARVEE'S DIRECTORY REPAIRMAN !
120 REM ! !
130 REM ! C-1987 WHITAKER LABS !
140 REM ! !
150 REM ! BROUGHT TO YOU BY SCORMUS !
160 REM !-----------------------------!
170 :
180 REM PROTECT GEOS FROM BASIC
190 IFPEEK(56)>126THENPOKE56,126:CLR
200 :
210 REM DIMS FLGS VARS CONSTNTS STRINGS
220 REM DIMENSIONS
230 DIM BF(23):REM BLKS FREE COMPUTED
240 DIM BD(20):REM DIR BLKS FOLLOWED
250 DIM M$(11):REM MSGS
260 DIM F$(7) :REM FILE NAMES
270 DIM BM(2) :REM BAM TEMP 0-7/8-F/10+
280 :
290 REM FLAGS
300 PE=0:REM PRNT ERR CHN 1=PRNT
310 IS=0:REM ILLEGAL SECTR
320 BD=0:REM BAD DIRECTORY
330 BB=0:REM BAD BLOCK
340 BP=0:REM BAD POINTER
350 NF=0:REM DIR NOT FIXED
360 BT=0:REM OFF TR 18
370 :
380 REM VARIABLES
390 X=0:Y=0:T=0:REM LOOP VARS
400 TR=18:SE=0:REM DEFAULT TR/SE
410 TV=18:SV=0:REM TR/SE PNTR VAL
420 AL=55537 :REM COLOR POKE PSEUDO BASE
430 M =0:D=0 :REM MESSAGE #/# LINES DOWN
440 CF=0:BL=0:REM COMP/ACTUAL BLKS FREE
450 ND=0:E=0 :REM NEW DOS VERS
460 CT=0 :REM # OF MISALLOC BLKS
470 P =0 :REM BUFFER POINTER
480 :
490 REM STRINGS
500 A$="":B$="":C$="":D$="":REM TMP STR
510 WP$="":REM WRITE PROTECT
520 NL$=CHR$(0):REM NULL
530 L$="[192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]"
540 L2$=" [192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]"
550 R1$=""
560 R2$="[156]"
570 :
580 REM GEOS SPECIFIC CONSTANTS
590 DA=33938:REM DISK TURBO FLG DRIVE A
600 DB=33939:REM DISK TURBO FLG DRIVE B
610 V2=49893:REM VERS 1.2 SETUP SYS
620 V3=49708:REM VERS 1.2/3 RESTART
630 VL=49158:REM GEOS BOOT & VERS # LOC
640 FORX=0TO8:REM CHECK FOR GEOSTOBOOT
650 GB$=GB$+CHR$(PEEK(VL+X)):REM STRING
660 NEXT:REM FOR POSS DESKTOP REENTRY
670 VE=PEEK(VL+X):REM GEOS VERS #
680 :
690 REM MESSAGES
700 M$(0)="[154]<< [208]RESS [203]EY [198]OR [205]ENU[160]>>"
710 M$(1)="[154]<< [208]RESS [203]EY [212]O [194]OOT >>"
720 M$(2)="[150]<< [215][193][210][206][201][206][199][160]!!![160][160][205][201][211][193][204][204][207][195][193][212][197][196] [194][204][207][195][203][211] >>"
730 M$(3)="<< [207]PERATION [193]BORTED .. [200]IT A [203]EY >>"
740 M$(4)="<< [215][193][210][206][201][206][199] !!! [194][193][196][160][196][201][210][197][195][212][207][210][217] >>"
750 M$(5)="[150]<< [215][193][210][206][201][206][199] !!! [194][193][196][160][197][206][196][160][208][212][210] >>"
760 M$(6)="<< [207]PERATION [198]AILED .. [210]ETRY >>"
770 M$(7)="[154]<< [208]RESS [203]EY FOR [205]ENU >>
780 M$(8)[178]"CONT<< (null)(null) (null)TATUS LENHANGED >>
790 M$(9)="<< [201][204][204][197][199][193][204] [207][198][198] [208][193][199][197] [196][201][210][197][195][212][207][210][217] [194][204][207][195][203] >>"
800 M$(10)="[150]<< [196][197][211][203][212][207][208][160][194][207][210][196][197][210] [200][193][211][160][194][197][197][206][160][197][210][193][211][197][196] >>"
810 M$(11)="<< [215][193][210][206][201][206][199] !!! [196][201][210][197][195][212][207][210][217][160][207][198][198][160][212][210][203][160]18 >>"
820 :
830 REM TITLE SCREEN & GET ROUTINE #
840 POKE53280,11:REM GREY BORDER
850 POKE53281, 0:REM BLACK SCREEN
860 :
870 PRINT"[147][146] [176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]
880 [153]" (null) CLRSTR$RIGHT$(null)VALLEN(null)(null)(null)(null)CLOSE(null)VAL(null)ATNRIGHT$(null)(null)ATN(null) (null)
890 PRINT" [173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189]
900 [153]" POKE(SYS(null)POKE)CONTRITE (null)ROTECT STR$ISK
910 PRINT" [151]([158][213][151])[154]N [215]RITE [208]ROTECT
920 [153]" POKE(SYSSTR$POKE)CONTESK PEEKORDER RIGHT$NFO
930 PRINT" [151]([158][193][151])[154]NALYZE [212]RACK 18
940 [153]" POKE(SYS(null)POKE)CONTEPAIR STR$IRECTORY
950 PRINT" [193]LLOCATE TRACK 18
960 [153]" ASCOLLOW DIR CHAIN
970 PRINT" [198]IX LAST POINTER
980 [153]" ASCREE UNUSED BLKS
990 PRINT" [151]([158][194][151])[154]ASIC
1000 [153]" POKE(SYSCHR$POKE)CONTVAL(null)(null)
1010 :
1020 POKE198,0:WAIT198,1:GETA$
1030 IFA$="D"THEN 3750:REM GEOS INFO
1040 IFA$="A"THEN 2040:REM ANALYZE
1050 IFA$="R"THEN 2910:REM REPAIR
1060 IFA$="W"THEN 3500:REM WRITE PROT
1070 IFA$="U"THEN 3510:REM UN WP
1080 IFA$="B"THEN PRINT"[145][145][145][154]":END
1090 IFA$="G"THEN 1110:REM GO GEOS
1100 GOTO1020
1110 REM GEOS DESKTOP RETURN
1120 IF GB$<>"GEOS BOOT" THEN 1170
1130 POKE DA,0:POKE DB,0:REM TURBO OFF
1140 IF VE=18 THEN SYS V2:SYS V3
1150 IF VE=19 THEN SYS V3
1160 REM BOOT GEOS
1170 PRINT"[147] [176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]"
1180 PRINT " [221] [156][201][206][211][197][210][212][160][199][197][207][211][160][194][207][207][212][160][196][201][211][203] [221]"
1190 PRINT " [173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189][154]"
1200 M=1:D=15:GOSUB1260
1210 PRINT"[147]LOAD"CHR$(34)"GEOS"CHR$(34)",8,1"
1220 PRINT "RUN
1230 [151]198,3:[151]631,19:[151]632,13:[151]633,13:[144]
1240 :
1250 [143] FLASH MESSAGE # M DOWN D
1260 [153]"";:[129]X[178]0[164]D:[153]"";:[130]
1270 [151]198,0
1280 [129]X[178]1[164]2
1290 [153]"WAITON"
1300 [139]X[178]2[167][153]"";
1310 [153] M$(M);
1320 [129]Y[178]1[164]100:[161]A$
1330 [139] A$[178]""[167] [130]:[130]:[137]1280
1340 [139] A$[178]"_"[167] [138]
1350 [153]"WAIT";:[142]
1360 :
1370 [143] CHECK DEV PRES
1380 [160]15:[159]15,8,15:[160]15
1390 [139] ST [178] 0 [167] [142]
1400 [153]" STR$EVICE (null)OT (null)RESENT"
1410 M[178]3:D[178]23:[141]1260:[138]
1420 :
1430 [143] INITIALIZE
1440 [141]1660:[159]15,8,15,"I0:":[142]
1450 :
1460 [143] CHECK ERROR CHANNEL
1470 [143] CLOSE ALL/OPEN/READ/PRINT
1480 [141]1660:[159]15,8,15
1490 [143] READ/PRINT
1500 PE[178]1:[143] PRNT FLG
1510 [143] READ ONLY
1520 [132]15,EN$,EM$,ET$,ES$
1530 [139]EN$[179][177]"00"[167][153]:[153]"";
1540 [139] PE[178]1 [167][153]EN$","EM$","ET$","ES$:PE[178]0
1550 [139] EN$[178]"00"[167] [142]
1560 [137]1410
1570 :
1580 [143] INIT FOR IO
1590 [141]1380:[143] CHK DEVICE PRESENT
1600 [141]1440:[143] INITIALIZE DRIVE
1610 [141]1520:[143] READ ERR
1620 [141]1690:[143] ALLOC DISK BUFFER
1630 [142]
1640 :
1650 [143] DONE WITH IO
1660 [129]X[178]1[164]15:[160]X:[130]:[142]
1670 :
1680 [143] ALLOCATE A DISK BUFFER
1690 [159]2,8,2,"#":[142]
1700 :
1710 [143] READ BUFFER
1720 [152]15,"U1";2;0;TR;SE:[142]
1730 :
1740 [143] WRITE BUFFER
1750 [152]15,"U2";2;0;TR;SE:[142]
1760 :
1770 [143] BUFFER POINTER
1780 [152]15,"B-P";2;P:[142]
1790 :
1800 [143] CHECK IF SECTOR IS LEGAL
1810 IS[178]0:[143] SECTOR IS OK
1820 [139] SE[179]0 [167] 1880
1830 [139] TR[179]0 [167] 1880
1840 [139] TR[179]18 [167] [139] SE[179]21 [167] [142]
1850 [139] TR[179]25 [167] [139] SE[179]19 [167] [142]
1860 [139] TR[179]31 [167] [139] SE[179]18 [167] [142]
1870 [139] TR[179]36 [167] [139] SE[179]17 [167] [142]
1880 IS[178]1:[143] SECTOR NOT OK
1890 [142]
1900 :
1910 [143] JOB QUEUE
1920 [152]15,"M-W"[199](8)[199](0)[199](2)[199](TR)[199](SE)
1930 [152]15,"M-W"[199](1)[199](0)[199](1)[199](JOB)
1940 [129]T[178]0[164]500
1950 [151]53280,([194](53280)[170]1)[175]15
1960 [152]15,"M-R"[199](1)[199](0)
1970 [161]#15,E$:E[178][198](E$[170]NL$)
1980 [139] E[177]127 [167] [130] T
1990 [151]53280,11:
2000 [139] E[178]1 [167] [142]
2010 [160]15:M[178]6:D[178]23:[141]1260:[138]
2020 :
2030 [143] DISPLAY TRACK 18 BAM
2040 [153]"LOAD ORTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTAN^"
2050 [153]" (null) CLRATN(null)ATN(null)(null)(null)VAL STR$RIGHT$(null)VALLEN(null)(null)(null)(null)CLOSEPEEKATN(null) (null)"
2060 [153]" /TANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANEXPCONT"
2070 [141]1590:[143] INIT IO
2080 BD[178]0:BP[178]0:BB[178]0:BT[178]0:[143] SET FLAGS
2090 CF[178]0:[143] COMPUTED FREE BLKS
2100 TR[178]18:SE[178]0:[143] DEFAULTS
2110 [143] INPUT BAM INFO
2120 [153]"(null)EADING PEEKATN(null) ........ ";
2130 [141]1720:[143] U1
2140 [141]1500:[143] READ/PRINT
2150 P[178]2:[141]1780:[143] B-P
2160 [161]#2,A$:ODV[178][198](A$[170]NL$)
2170 WP$[178]"(null)(null)":[139] ODV[178]65 [167] WP$[178]"(null)ASCASC"
2180 P[178]72:[141]1780:[143] B-P
2190 [161]#2,A$,B$,C$,D$
2200 [141]1660:[143] DONE IO
2210 BL[178][198](A$[170]NL$) :[143] FREE BLKS
2220 BM(0)[178][198](B$[170]NL$) :[143] BAM 0- 7
2230 BM(1)[178][198](C$[170]NL$) :[143] BAM 8-15
2240 BM(2)[178][198](D$[170]NL$) :[143] BAM 16-18
2250 [143] COMPUTE/DISP BLKS FREE
2260 [129]X[178]0[164]2:[129]Y[178]0[164]7
2270 BF( (8[172]X)[170]Y )[178](BM(X) [175] 2[174]Y)[173]2[174]Y
2280 [130]Y
2290 [130]X
2300 [153]"ONONONON "L$L$
2310 [153]"CONT (null)RACK 18 PEEKATN(null) PEEKLOCKS LENOMPUTED"
2320 [153]" 0....5....0....5..8 ASCREE ASCREE"
2330 [153]" ";
2340 [129]X[178]0[164]18:
2350 [139] BF(X) [178] 0 [167] [153] "*";:[130]:[137]2380
2360 CF[178]CF[170]1
2370 [153]"-";:[130]
2380 [153]" ";:[139]BL[179]10[167][153]" ";
2390 [153]BL;
2400 [153]"CMD ";
2410 [139]CF[179]10[167][153]" ";
2420 [153]CF"CMD "
2430 [139] CF[178]BL [167] 2450
2440 BD[178]1:[153]"ONONONON "L$""L$""
2450 [153]" "L$;:[139]BD[178]1[167][153]"";:
2460 [153]L$
2470 TV[178]18:SV[178]0 :[143] 1ST BLK
2480 [141]1590:[143] INIT IO
2490 [153]"CONT (null)(null) (null)VAL (null)OINTER
2500 PRINTL2$
2510 SE=SV:TR=TV:IFNF=1THEN2710
2520 IF TV=0 THEN 2710
2530 REM CHAIN NEXT
2540 NF=0
2550 GOSUB1720:REM U1
2560 GOSUB1520:REM READ ERR
2570 P=0:GOSUB1780:REM B-P
2580 GET#2,TR$,SE$
2590 TV=ASC(TR$+NL$)
2600 SV=ASC(SE$+NL$)
2610 GOSUB1810:NF=IS:REM CHK LEGAL SECTOR
2620 BD(SE)=1:PRINT"[154]";
2630 IFBF(SE)<>0THENPRINT"";:BD=1:BB=1:POKEAL+SE,2
2640 IF TV>0 OR SV=255 THEN 2660
2650 PRINT""R1$"_[194][193][196] [208][212][210][145]":BP=1:BB=0
2660 IFTR<>18THENIFTR<>0THENBT=1:PRINT" "L$"[157][157] ":GOTO2680
2670 IFBBTHENPRINTR1$"_[193][204][204][207][195][193][212][197][145]":BB=0
2680 PRINTTR;SE,TV;SV
2690 IF TV=0 THEN PRINTL2$
2700 GOTO2510
2710 GOSUB1660:REM DONE IO
2720 REM DISPLAY MISALLOC BLKS
2730 FORX=0TO18:IF BD(X)=1THEN 2810
2740 IF BF(X)>0 THEN 2810
2750 CT=CT+1:IFCT>14THEN2800
2760 PRINT""R2$"[213][206][213][211][197][196][160][211][197][195][212][207][210][211]
2770 [153]R2$"ATN(null)VALCLOSEATN(null)(null)(null)LENATN(null)VALSTR$ONON
2780 FORY=0TOCT:PRINT:NEXT
2790 PRINTR2$"[211]ECTOR " X"[145]"
2800 POKE AL+X,2
2810 NEXTX
2820 PRINT"[151][215][208]"WP$
2830 REM WHICH MSG
2840 M=0:IF BD=1 THEN M=4:REM BAD DIR
2850 IF CT>0 THEN M=2:REM MISALOC BLKS
2860 IF BP=1 THEN M=5:REM BAD END PTR
2870 IF BT=1 THEN M=11:REM DIR OFF TRK
2880 D=23:GOSUB1260:RUN
2890 :
2900 REM FIX DIR
2910 PRINT"[147] [176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]
2920 [153]" (null) CLRASC(null)(null)(null)(null)(null)RIGHT$(null)CHR$CLOSESTR$RIGHT$(null)VALLEN(null)(null)(null)(null) (null)
2930 PRINT" [173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189][154]
2940 TR[178]18:SE[178]0
2950 [141]1590:[143] INIT IO
2960 :
2970 BF(0)[178]1
2980 [141]1720:[143] U1
2990 [141]1520:[143] READ ERR
3000 P[178]0:[141]1780:[143] B-P
3010 [161]#2,TR$,SE$
3020 TV[178][198](TR$[170]NL$)
3030 SV[178][198](SE$[170]NL$)
3040 [139]TV[178]18[167]BF(SV)[178]1:SE[178]SV:[137]2980
3050 [139] TV[179][177]0 [167] BT[178]1:NF[178]1:[137]3380
3060 [139] SV[178]255 [167] [153]"(null)AST STR$IR (null)ECTOR (null)(null) ";:[137]3110
3070 [153] "ASCIXING (null)AST (null)ECTOR . ";
3080 P[178]1:[141]1780:[143] B-P
3090 [152]2,[199](255);
3100 P[178]0:[141]1780:[141]1750:[143] B-P/U2
3110 [141]1500:[143] READ/PRINT
3120 :
3130 [143] ALLOC ALL BLKS TR 18
3140 TR[178]18:SE[178]0:[141]1590:[143] REINIT IO
3150 [153]"(null)EADING PEEKATN(null) ........ ";
3160 [141]1720:[143] U1
3170 [141]1500:[143] READ/PRINT
3180 P[178]72:[141]1780:[143] B-P
3190 [152]2,NL$;NL$;NL$;NL$;:[143] 0 BAM
3200 P[178]0:[141]1780:[143] B-P
3210 [153]"(null)RITING PEEKATN(null) ........ ";
3220 [141]1750:[143] U2
3230 [141]1500:[143] READ/PRINT
3240 [153]" ORTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTAN^"
3250 [153]" (null) CLR(null)(null)(null) 18 ATN(null)(null)(null)LENATN(null)VALSTR$ (null)
3260 PRINT" [173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189][154]"
3270 :
3280 REM FREE UNUSED BLOCKS
3290 GOSUB1590:REM REINIT IO
3300 PRINT"[196]EALLOCATING BLKS .. ";
3310 FORX=0TO18
3320 IF BF(X) THEN 3360
3330 PRINT#15,"B-F";0;18;X
3340 INPUT#15,EN,EM$,ET,ES:REM ERR CHN
3350 IF EN$<>"00" THEN PRINT "[197]RROR IN [211]ECTOR"X:GOSUB1550:NF=1
3360 NEXTX
3370 GOSUB1480:REM CLOSE/OPEN/READ/PRINT
3380 GOSUB1660:REM DONE IO
3390 IF NF THEN 3440
3400 PRINT" [176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]
3410 [153]" (null) CLRSTR$RIGHT$(null)VALLEN(null)(null)(null)(null)CLOSE(null)VAL(null)ATNRIGHT$(null)VALSTR$ (null)
3420 PRINT" [173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189][154]
3430 M[178]7:D[178]21:[141]1260:[138]
3440 [153]" ORTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTAN^
3450 PRINT" [221] [156][210][197][208][193][201][210][211] [198][193][201][204][197][196] ! [221]
3460 [153]" /TANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANEXPCONT
3470 M=6:D=21:M=M+BT*5:GOSUB1260:RUN
3480 :
3490 REM EDIT DOS VERSION
3500 NDV=66:GOTO3520:REM WP ON
3510 NDV=65:REM WRITE PROT OFF
3520 PRINT"[147] [176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]
3530 [153]" (null) CLRVALSTR$RIGHT$(null)RIGHT$(null)CHR$CLOSESTR$(null)(null)CLOSE(null)VAL(null)(null)RIGHT$(null)(null) (null)
3540 PRINT" [173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189][154]
3550 [143] NDV=NEW DOS VERSION 1541 => A
3560 [143] WP OFF=65 ON=66
3570 [141]1590:[143] INIT IO
3580 TR[178]18:SE[178]0 :[143] BAM TRACK
3590 JOB[178]176:[141]1920:[143] SEEK
3600 JOB[178]128:[141]1920:[143] READ
3610 [152]15,"M-W"[199](2)[199](4)[199](1)[199](NDV)
3620 JOB[178]144:[141]1920:[143] WRITE
3630 [141]1660:[143] DONE IO
3640 [141]1590:[141]1660:[143] INIT/DONE IO
3650 M[178]8:D[178]14:[141]1260:[138]
3660 :
3670 [143] GET DOS WRITE PROTECT STATUS
3680 [141]1590:[143] INIT IO
3690 [152]15,"M-R"[199](1)[199](1)
3700 [161]#15,A$:WP$[178]"(null)(null)"
3710 [139] A$[178][199](65)[167] WP$[178]"(null)ASCASC"
3720 [141]1660:[143] DONE IO
3730 :
3740 [143] GET GEOS FORMAT HEADER STUFF
3750 [153]"LOAD ORTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTAN^
3760 PRINT" [221] [156][199][197][207]-[196][201][211][203][160][201][206][198][207][210][205][193][212][201][207][206] [221]
3770 [153]" /TANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANEXPCONT
3780 TR=18:SE=0:CT=0
3790 GOSUB1590:REM INIT IO
3800 GOSUB1720:REM U1
3810 P=171:GOSUB1780:REM B-P
3820 GET#2,A$,B$:REM TR/SE
3830 ID$="":FORX=173 TO 188:GET#2,C$:ID$=ID$+C$:NEXT:REM GEOSFORMAT STRING
3840 GET#2,D$:REM MASTER/BOOT/WORK FLG
3850 GOSUB1660:REM DONE IO
3860 IF LEFT$(ID$,4)="GEOS"THEN 3910
3870 PRINT" [176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]
3880 [153]" (null) CLR(null)(null)(null)CLOSEATN CHR$VAL(null)(null)CLOSE(null)(null)(null)VALCLOSESTR$RIGHT$(null)(null)CLOSE(null)
3890 PRINT" [173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189][154]
3900 M[178]0:D[178]12:[141]1260:[138]
3910 TR[178][198](A$[170]NL$):SE[178][198](B$[170]NL$)
3920 [153]" CONT"ID$" -- ";
3930 [139]D$[178]"B"[167][153]"SYSPEEKOOT STR$ISK
3940 IFD$="P"THENPRINT"[158][205]ASTER [196]ISK
3950 [139]D$[178]"" [167][153]"SYS(null)ORK STR$ISK
3960 PRINT" "L$L$
3970 PRINT"[154] [196]ESKTOP[160][194]ORDER[160][208]G ";
3980 PRINT"[212][210][160]="TR"[157]"," [211][197] ="SE
3990 GOSUB1810:REM CHK LEGAL SECTOR
4000 IFIS=0THEN4030
4010 PRINT" [145][145]"L$L$"":PRINT" "L$L$
4020 D=12:M=9:GOSUB1260:GOTO4250
4030 PRINT" "L$L$
4040 GOSUB1590:REM INIT IO
4050 GOSUB1720:P=0:GOSUB1780:REM U1/B-P
4060 GET#2,A$,B$
4070 TV=ASC(A$+NL$):SV=ASC(B$+NL$)
4080 IF TV<>0 OR SV<>255 THEN BD=1
4090 FOR P=2 TO 226 STEP 32
4100 GOSUB1780:GET#2,A$:REM B-P
4110 IF ASC(A$+NL$)=0 THEN 4150
4120 CT=CT+1
4130 GET#2,A$,B$,F$(CT-1)
4140 FORY=1TO15:GET#2,A$:F$(CT-1)=F$(CT-1)+A$:NEXT
4150 NEXTP:GOSUB1660:REM DONE IO
4160 PRINT"[198]ILES ON [196]ESKTOP [194]ORDER -";
4170 IF CT=0 THEN PRINT " [206][207][206][197]":GOTO4200
4180 PRINT CT
4190 PRINT:FORX=1TOCT:PRINTX;F$(X-1):NEXT
4200 IF BD<>1 THEN D=CT+14:M=0:GOSUB1260:RUN
4210 PRINT" [176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]
4220 [153] " (null) CLRSTR$VAL(null)(null)(null)(null)(null)CLOSEPEEK(null)(null)STR$VAL(null)CLOSELEN(null)(null)(null)(null)(null)(null) (null)
4230 PRINT" [173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189][154]
4240 [139] CT[178]0 [167] 4310
4250 [153]"CONT (null)OU HAVE A PROBLEM TOO SERIOUS FOR"
4260 [153]"ME TO ADDRESS. RIGHT$T MIGHT BE POSSIBLE TO"
4270 [153]"SALVAGE PARTS OF YOUR DISK IF YOU START"
4280 [153]"NOW. (null)SE A CHR$(null)(null)STR$ SECTOR EDITOR AND ...."
4290 [153]" CHR$(null)(null)STR$ (null)(null)LEN(null)CLOSE!!!ONON
4300 STOP
4310 PRINT "[156] [217]OU HAVE"CT"FILES ON THE [196]ESKTOP"
4320 PRINT "[156][194]ORDER. [215]OULD YOU LIKE TO [197][210][193][211][197] [156]IT ? ";
4330 FORX=1TO2
4340 IF X=1 THEN PRINT"[219][157]";
4350 IF X=2 THEN PRINT"+[157]";
4360 FORY=1TO70:GETA$
4370 IF A$=""THEN NEXT:NEXT:GOTO4330
4380 IF A$="_"THEN RUN
4390 IFA$<>"Y"THEN RUN
4400 PRINT:PRINT"";
4410 REM GEODEFORMAT
4420 TR=18:SE=0
4430 GOSUB1590:REM INIT IO
4440 GOSUB1720:P=171:GOSUB1780:REM U1/B-P
4450 FORI=171TO191:PRINT#2,NL$;:NEXT
4460 GOSUB1750:REM U2
4470 GOSUB1660:REM DONE IO
4480 GOSUB1480:REM CLOSE/OPEN/READ/PRINT
4490 D=23:M=10:GOSUB1260:RUN